$(function() {
	
	var $promise = $.request({
		type: 'post',
		url: 'namespace/list',
		data: JSON.stringify({order: 'asc'}),
		success: function(result) {
			var $select = $('#namespace');
			$select.empty();
			for(var record of result.data.records) {
				$select.append('<option value="'+record.namespace+'">'+record.namespace+'</option>');
			}
		}
	});
	
	var $dataGrid = null; 
	
	function initJqGrid() {
		/*初始化列表*/
		$dataGrid = $('#dataGrid').initJqgrid({
			url: 'router/list',
			dataType: 'local',
			colNames : [ "namespace", 'id', 'uri', 'order', 'predicates', 'filters', 'metadata', 'createTime'],
			colModel : [ {
				name : 'namespace',
				index : 'namespace'
			},  {
				name : 'id',
				index : 'id'
			}, {
				name : 'uri',
				index : 'uri'
			}, {
				name : 'order',
				index : 'order'
			}, {
				name : 'predicates',
				index : 'predicates',
				align : 'center',
				formatter: function(cellValue) {
					if(cellValue == null) {
						return '';
					}
					return JSON.stringify(cellValue);
				}
			}, {
				name : 'filters',
				index : 'filters',
				align : 'center',
				formatter: function(cellValue) {
					if(cellValue == null) {
						return '';
					}
					return JSON.stringify(cellValue);
				}
			},  {
				name : 'metadata',
				index : 'metadata',
				align : 'center',
				formatter: function(cellValue) {
					if(cellValue == null) {
						return '';
					}
					return JSON.stringify(cellValue);
				}
			}, {
				name : 'createTime',
				index : 'createTime',
				align : 'left'
			}],
			caption: '路由列表',
			sortname: 'id',
			sortorder: 'desc',
			shrinkToFit: true,
			id: 'id',
			btngroup: '#toolbar'
		});
		
	}
	
	
	$promise.then(function() {
		
		var namespace = $('#namespace option:first').val();
		
		initJqGrid();	
			
		if(namespace == '') {
			return ;
		}

		var data = {namespace: namespace};
		
		$("#dataGrid").jqGrid('setGridParam', {
			datatype: 'json',
			postData: JSON.stringify(data),
			mtype: 'post'
		}).trigger('reloadGrid');
		
	});
	
	
	function refresh() {
		$dataGrid.trigger('reloadGrid');
	}
	
	window.search = function() {
		
		var namespace = $('#namespace').val();
		
		var data = {namespace: namespace};
		
		$("#dataGrid").jqGrid('setGridParam', {
			datatype: 'json',
			postData: JSON.stringify(data),
			mtype: 'post'
		}).trigger('reloadGrid');
		
	}
	
	window.reset = function() {
		$('#searchForm select').each(function(){
			$(this).val(null).trigger('change');
		});
		$('#searchForm')[0].reset();
		search();
	}
	
	
	//新增页面
	window.add = function() {
		var namespace = $('#namespace').val();
		
		if(namespace == '') {
			layer.alert('请先创建命名空间', {icon: 5});
			return ;
		}
		
		var url = 'router/' + namespace + '/add.html';
		
		$.modal.open({
			title: '新增路由',
    		url: url,
    		width: 700,
    		end: function() {
				refresh();
    		}
		});
	}
	
	window.update = function() {
		
		$dataGrid.getOneData(function(data) {
			
			var url = 'router/update/'+ data.namespace+'/'+data.id+'.html';
			
			$.modal.open({
				title: '修改路由',
	    		url: url,
	    		width: 700,
	    		end: function() {
					refresh();
	    		}
			});
			
		});
		
	}
	
	window.detail = function() {
		$dataGrid.getOneData(function(data) {
			
			var url = 'router/detail/'+ data.namespace+'/'+data.id+'.html';
			
			$.modal.open({
				title: '路由详情',
	    		url: url,
	    		width: 700,
	    		end: function() {
					
	    		}
			});
			
		});
	}
	
	window.del = function() {
		
		$dataGrid.getOneData(function(data) {
			
			layer.confirm('确定删除【'+data.id+'】?', {icon: 3}, function(index) {
				
				var reqParam = {namespace: data.namespace, id: data.id};
				
				var $promise = $.request({
					type: 'post',
					url: 'router/delete',
					data: JSON.stringify(reqParam),
					msg: '删除成功'
				});
				
				$promise.then(function() {
					layer.close(index);
					refresh();
				});
				
			})
			
		});
	}
	
});